package a.f.g;

import a.a.qb;
import a.c.bb;
import a.c.d;
import a.c.m;
import a.c.v;
import a.c.x;
import a.c.z;
import a.f.c.c;
import a.f.c.g;
import a.f.*;
import a.f.o;
import a.f.r;
import a.i.wb;

import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class e
  extends a.f.mb
{
  public static final Object w = "SPHERE_OF_ACTION_NODES";
  public static final Object x = "y.layout.organic.OrganicLayouter.FIXED_GROUP_NODES_DPKEY";
  public static final byte y = 0;
  public static final byte z = 1;
  public static final byte A = 2;
  public static final byte B = 0;
  public static final byte C = 1;
  public static final byte D = 2;
  private byte E = 1;
  public static final byte F = 0;
  public static final byte G = 1;
  public static final byte H = 2;
  public static final Object I = "OrganicLayouter.EDGE_LENGTH_DATA";
  private byte J = 0;
  static final int K = 5;
  private double L = 0.65D;
  private static final double M = 20.0D;
  private static final double N = 0.1D;
  private double O = Math.max(0.1D, 1.0D);
  private static final double P = 0.0001D;
  private double Q;
  private double R = 80.0D;
  private double S;
  private double T;
  private c_ U;
  private double V;
  private double W = 3.0D;
  private boolean X = true;
  private int Y;
  private o Z;
  private b_[] ab;
  private int bb;
  private b_[] cb;
  private wb db;
  private boolean eb = true;
  private long fb = 30000L;
  private double gb = 0.0D;
  private double hb;
  private a.i.mb ib;
  private double jb;
  private double kb;
  private double[] lb;
  private double[] mb;
  private boolean nb = false;
  private boolean ob = false;
  private byte pb = 1;
  private byte qb = 1;
  private int rb = 1000;
  private a.f.c.h sb;
  private List tb;
  private List ub;
  private Map vb;
  private byte[] wb;
  private static final byte xb = 0;
  private static final byte yb = 1;
  private static final byte zb = 2;
  private static final byte Ab = 3;
  private static final byte Bb = 0;
  private static final byte Cb = 1;
  private static final byte Db = 3;
  private double Eb;
  private double Fb;
  private int Gb = 1;
  private int Hb = 1;
  private int Ib = 1;
  private g Jb = new a.f.c.k();
  private double Kb = 0.2D;
  private int[] Lb;
  private byte Mb;
  public static boolean Nb;
  
  public e()
  {
    super.a(new d_(null));
    d(false);
    ((ib)c()).a((byte)1);
  }
  
  public int a()
  {
    return this.qb;
  }
  
  public void a(int paramInt)
  {
    if ((j.c) || ((paramInt > 2) || (paramInt < 0))) {
      throw new IllegalArgumentException("Repulsion must lie within [0,2]");
    }
    this.qb = ((byte)paramInt);
  }
  
  public int s()
  {
    return this.pb;
  }
  
  public void b(int paramInt)
  {
    if ((j.c) || ((paramInt > 2) || (paramInt < 0))) {
      throw new IllegalArgumentException("Attraction must lie within [0,2]");
    }
    this.pb = ((byte)paramInt);
  }
  
  public g t()
  {
    return this.Jb;
  }
  
  public void a(g paramg)
  {
    this.Jb = paramg;
  }
  
  public double u()
  {
    return this.Kb;
  }
  
  public void a(double paramDouble)
  {
    boolean bool = j.c;
    if ((bool) || (paramDouble >= 0.0D)) {
      if (!bool)
      {
        if (paramDouble <= 1.0D) {
          this.Kb = paramDouble;
        }
      }
      else if (j.b == 0) {
        return;
      }
    }
    throw new IllegalArgumentException(paramDouble + " not in [0,1]");
  }
  
  public byte v()
  {
    return this.Mb;
  }
  
  public void b(byte paramByte)
  {
    boolean bool = j.c;
    if (!bool)
    {
      if (paramByte != 1)
      {
        if (bool) {
          break label38;
        }
        if (paramByte != 0)
        {
          if (bool) {
            break label38;
          }
          if (paramByte != 2) {
            break label41;
          }
        }
      }
      this.Mb = paramByte;
    }
    if (j.b != 0) {
      label38:
      label41:
      throw new IllegalArgumentException(Byte.toString(paramByte));
    }
  }
  
  public double w()
  {
    return this.L;
  }
  
  public void b(double paramDouble)
  {
    this.L = paramDouble;
  }
  
  public double x()
  {
    return this.O;
  }
  
  public void c(double paramDouble)
  {
    this.O = paramDouble;
  }
  
  public void h(boolean paramBoolean)
  {
    this.ob = paramBoolean;
  }
  
  public boolean y()
  {
    return this.ob;
  }
  
  public void i(boolean paramBoolean)
  {
    this.nb = paramBoolean;
  }
  
  public boolean z()
  {
    return this.nb;
  }
  
  public void d(double paramDouble)
  {
    this.gb = paramDouble;
  }
  
  public double A()
  {
    return this.gb;
  }
  
  public void c(byte paramByte)
  {
    this.J = paramByte;
    if ((j.c) || (this.J != 0)) {
      d((byte)2);
    }
  }
  
  public byte B()
  {
    return this.J;
  }
  
  public void d(byte paramByte)
  {
    this.E = paramByte;
  }
  
  public byte C()
  {
    return this.E;
  }
  
  public void a(long paramLong)
  {
    this.fb = paramLong;
  }
  
  public long D()
  {
    return this.fb;
  }
  
  public void e(double paramDouble)
  {
    this.W = paramDouble;
  }
  
  public double F()
  {
    return this.W;
  }
  
  public void c(int paramInt)
  {
    this.R = paramInt;
  }
  
  public int G()
  {
    return (int)this.R;
  }
  
  public void j(boolean paramBoolean)
  {
    this.X = paramBoolean;
  }
  
  public boolean H()
  {
    return this.X;
  }
  
  public boolean b(o paramo)
  {
    return true;
  }
  
  public void a(o paramo)
  {
    boolean bool2 = j.c;
    int j = j.b;
    if (!bool2)
    {
      if (paramo == null) {
        return;
      }
      this.Z = paramo;
    }
    boolean bool1 = a.f.c.h.b(paramo);
    h localh = null;
    if ((bool2) || (bool1))
    {
      if (e(paramo)) {}
    }
    else
    {
      localh = new h(paramo);
      if (!bool2) {
        if (z()) {
          localh.a();
        }
      }
      if (!a(paramo, null)) {
        return;
      }
    }
    try
    {
      c_ localc_ = new c_();
      long l1 = 0L;
      long l2 = (this.W * e(this.cb.length) + 20 * this.cb.length);
      l2 = Math.max(l2, 10000L);
      double d1 = this.O * this.O * this.cb.length;
      int i = this.rb;
      try
      {
        label287:
        label296:
        label349:
        do
        {
          do
          {
            if ((this.S <= d1) || (l1 >= l2)) {
              break;
            }
            b_ localb_ = d((int)(l1 & 0x7FFFFFFF));
            if (!bool2)
            {
              if (i-- == 0)
              {
                if (!bool2)
                {
                  if (this.ib.d() > this.fb) {
                    l1 = l2;
                  }
                  qb.a();
                }
                i = this.rb;
              }
              if (bool2) {}
            }
            else
            {
              if (this.J == 1)
              {
                if (bool2) {
                  break label296;
                }
                if (!localb_.m) {
                  break label287;
                }
              }
              f(localb_, localc_);
              e(localb_, localc_);
            }
            d(localb_, localc_);
            if (!bool2) {
              if (this.eb)
              {
                a(localb_, localc_);
                b(localb_, localc_);
                if (!bool2) {
                  if (j == 0) {
                    break label349;
                  }
                }
              }
              else
              {
                a(this.pb, localb_, localc_);
              }
            }
            b(this.qb, localb_, localc_);
            double d2 = Math.sqrt(localc_.a * localc_.a + localc_.b * localc_.b + localc_.d * localc_.d);
            a(localb_, localc_, d2);
            b(localb_, localc_, d2);
            if (!bool2)
            {
              if (bool1)
              {
                b(localb_);
                a(localb_);
              }
              l1 += 1L;
            }
          } while (j == 0);
        } while (bool2);
      }
      catch (qb localqb) {}finally
      {
        L();
      }
    }
    finally
    {
      if (!bool2) {
        if (bool1) {
          I();
        }
      }
      if ((bool2) || ((j != 0) && (z()))) {
        localh.c();
      }
    }
  }
  
  private boolean e(o paramo)
  {
    boolean bool = j.c;
    int n = j.b;
    this.Z = paramo;
    if (!bool)
    {
      if (paramo == null) {
        return false;
      }
      this.sb = new a.f.c.h(paramo);
      this.tb = new ArrayList(500);
    }
    a.c.k localk = paramo.c(x);
    int[] arrayOfInt = null;
    if ((bool) || (this.J == 1))
    {
      arrayOfInt = new int[paramo.j()];
      localObject1 = db.a(arrayOfInt);
      b.a(paramo, paramo.c(w), (x)localObject1);
    }
    this.Lb = new int[paramo.j()];
    Object localObject1 = this.sb.d();
    if (localk != null) {
      this.vb = new HashMap();
    }
    Object localObject2 = paramo.v();
    Object localObject3;
    int k;
    label261:
    label389:
    label416:
    label418:
    do
    {
      if (!((a.c.w)localObject2).e()) {
        break;
      }
      localObject3 = ((a.c.w)localObject2).d();
      a.c.e locale2;
      do
      {
        this.Lb[localObject3.f()] = -1;
        do
        {
          locale1 = this.sb.b((a.c.e)localObject3);
          if (n != 0) {
            break label570;
          }
          if (locale1 == localObject1) {
            break;
          }
          k = 0;
          if (localk != null) {
            do
            {
              if (locale1 == localObject1) {
                break;
              }
              if (n != 0) {
                break label261;
              }
              if (localk.getBool(locale1))
              {
                k = 1;
                if (!bool) {
                  if (n == 0) {
                    break;
                  }
                }
              }
              else
              {
                locale1 = this.sb.b(locale1);
              }
            } while (n == 0);
          }
          if ((!bool) && (k == 0))
          {
            locale1 = this.sb.b((a.c.e)localObject3);
            do
            {
              if (locale1 == localObject1) {
                break;
              }
              this.tb.add(paramo.a((a.c.e)localObject3, locale1));
              locale1 = this.sb.b(locale1);
              if (bool) {
                break label418;
              }
              if (n != 0) {
                break label416;
              }
            } while (n == 0);
          }
          locale2 = locale1;
        } while (bool);
        a.c.e locale1 = this.sb.b(locale1);
        do
        {
          if (locale1 == localObject1) {
            break label389;
          }
          if (n != 0) {
            break;
          }
          if (localk.getBool(locale1)) {
            locale2 = locale1;
          }
          locale1 = this.sb.b(locale1);
        } while (n == 0);
      } while (bool);
      this.Lb[localObject3.f()] = locale2.f();
      ((a.c.w)localObject2).f();
    } while (n == 0);
    int j;
    if (!bool)
    {
      if (localk != null)
      {
        this.ub = new ArrayList(32);
        localObject2 = paramo.w();
        do
        {
          do
          {
            do
            {
              if (!((m)localObject2).e()) {
                break;
              }
              localObject3 = ((m)localObject2).a();
              ((m)localObject2).f();
              j = this.Lb[localObject3.e().f()];
            } while (j < 0);
            k = this.Lb[localObject3.f().f()];
            if ((bool) || ((!bool) && (n != 0))) {
              break label571;
            }
          } while (k != j);
          paramo.f((d)localObject3);
          if (bool) {
            break label561;
          }
          this.ub.add(localObject3);
        } while (n == 0);
      }
      label561:
      this.wb = new byte[paramo.l()];
    }
    label570:
    label571:
    int i = 0;
    if (i < this.tb.size()) {}
    label660:
    label665:
    while (bool)
    {
      localObject3 = (d)this.tb.get(i);
      if (!bool) {
        if (this.sb.b(((d)localObject3).e()) == ((d)localObject3).f())
        {
          this.wb[localObject3.d()] = 1;
          if (bool) {
            break label665;
          }
          if (n == 0) {
            break label660;
          }
        }
      }
      this.wb[localObject3.d()] = 2;
      i++;
      if (n == 0) {
        break;
      }
    }
    m localm = paramo.w();
    label768:
    do
    {
      if (!localm.e()) {
        break;
      }
      localObject3 = localm.a();
      j = ((d)localObject3).d();
      if (n != 0) {
        break label781;
      }
      if (!bool)
      {
        if (this.wb[j] == 0)
        {
          if (!bool) {
            if (this.sb.a((d)localObject3))
            {
              this.wb[j] = 0;
              if (bool) {
                continue;
              }
              if (n == 0) {
                break label768;
              }
            }
          }
          this.wb[j] = 3;
        }
        localm.f();
      }
    } while (n == 0);
    label781:
    double d1 = u();
    double d2 = 0.3D;
    if (!bool)
    {
      if (d1 == 0.0D)
      {
        this.Hb = 0;
        this.Gb = 2;
        this.Ib = 0;
        d2 = 0.001D;
        if (bool) {
          break label964;
        }
        if (n == 0) {
          break label917;
        }
      }
      if (bool) {}
    }
    else
    {
      if (d1 < 0.1D)
      {
        this.Hb = 1;
        this.Gb = 0;
        this.Ib = 0;
        d2 = 0.001D + 0.01D * d1;
        if (bool) {
          break label964;
        }
        if (n == 0) {
          break label917;
        }
      }
      this.Hb = 1;
      this.Gb = 0;
      this.Ib = 0;
    }
    d2 = 0.011D + d1 * d1 * d1 * 10.0D;
    label917:
    this.Eb = Math.pow(this.R, -(this.Gb + 1));
    this.Fb = (d2 * Math.pow(this.R, -(this.Ib + 1)));
    label964:
    if (!bool) {
      if (!a(paramo, arrayOfInt))
      {
        if (!bool) {
          if (this.sb != null) {
            this.sb.e();
          }
        }
        if (this.ub != null)
        {
          int m = 0;
          if (m < this.ub.size())
          {
            paramo.g((d)this.ub.get(m));
            m++;
          }
          for (;;)
          {
            if (!bool) {
              if (n == 0)
              {
                if (n == 0) {
                  break;
                }
                if (bool) {
                  continue;
                }
                this.ub.clear();
              }
            }
          }
        }
        return false;
      }
    }
    boolean[] arrayOfBoolean = new boolean[paramo.k()];
    a.c.w localw = this.sb.d(this.sb.d()).l();
    label1414:
    label1423:
    label1428:
    label1479:
    label1481:
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale3 = localw.d();
      b_ localb_1 = this.ab[locale3.f()];
      if (n != 0) {
        break label1501;
      }
      if (this.sb.e(locale3))
      {
        if (((bool) || (localk != null)) && ((bool) || (localk.getBool(locale3))))
        {
          this.vb.put(locale3, paramo.r(locale3));
          localb_1.o = 3;
        }
        bb localbb;
        do
        {
          localbb = this.sb.d(locale3);
          if (bool) {
            break label1428;
          }
          localb_1.s = localbb;
          if (arrayOfBoolean[locale3.f()] != 0) {
            break label1423;
          }
          v localv = localbb.f();
          do
          {
            if (localv == null) {
              break;
            }
            a.c.e locale4 = (a.c.e)localv.c();
            b_ localb_2 = this.ab[locale4.f()];
            localb_2.p = localb_1;
            arrayOfBoolean[locale4.f()] = true;
            localb_2.h = (paramo.m(locale4) - paramo.m(locale3));
            localb_2.i = (paramo.n(locale4) - paramo.n(locale3));
            localb_2.j = 0.0D;
            localv = localv.a();
            if (bool) {
              break label1481;
            }
            if (n != 0) {
              break label1479;
            }
          } while (n == 0);
          localbb = this.sb.c(locale3);
          if (bool) {
            break;
          }
        } while (bool);
        if (localbb != null)
        {
          if (bool) {
            break label1414;
          }
          if (localbb.size() != 0) {}
        }
        else
        {
          if (bool) {
            break label1428;
          }
          localb_1.o = 0;
          if (n == 0) {
            break label1423;
          }
        }
        localb_1.o = 1;
        if (bool) {
          break label1428;
        }
        localb_1.s = localbb;
        if (n == 0) {}
      }
      else
      {
        localb_1.o = 0;
      }
      if (localb_1.p == null) {
        if (this.sb.b(locale3) != this.sb.d()) {
          localb_1.p = this.ab[this.sb.b(locale3).f()];
        }
      }
      localw.f();
    } while (n == 0);
    a(this.sb, this.sb.d());
    label1501:
    return true;
  }
  
  private double a(a.f.c.h paramh, a.c.e parame)
  {
    boolean bool = j.c;
    int i = j.b;
    bb localbb = paramh.c(parame);
    double d1 = 0.0D;
    v localv = localbb.f();
    label140:
    label145:
    do
    {
      if (localv == null) {
        break;
      }
      a.c.e locale = (a.c.e)localv.c();
      b_ localb_ = this.ab[locale.f()];
      if ((bool) || (paramh.e(locale))) {
        if (!bool)
        {
          if (!paramh.c(locale).isEmpty()) {
            if (bool) {
              break label140;
            }
          }
        }
        else if (localb_.o != 3)
        {
          d3 = a(paramh, locale);
          localb_.r = d3;
          localb_.k = d3;
          if (bool) {
            continue;
          }
          if (i == 0) {
            break label145;
          }
        }
      }
      double d3 = this.ab[locale.f()].k;
      d1 += d3 * d3 * 3.0D;
      localv = localv.a();
    } while (i == 0);
    double d2 = d1 / (localbb.size() + 1);
    d2 = f(Math.sqrt(d2) + this.R * 0.9D);
    return Math.sqrt(d2 * localbb.size()) * 0.5D + this.R;
  }
  
  private void I()
  {
    boolean bool = j.c;
    int k = j.b;
    int i;
    d locald;
    if (!bool)
    {
      if (this.tb != null)
      {
        i = 0;
        do
        {
          if (i >= this.tb.size()) {
            break;
          }
          locald = (d)this.tb.get(i);
          if (k != 0) {
            break label101;
          }
          if (this.Z.j(locald)) {
            this.Z.a(locald);
          }
          i++;
        } while (k == 0);
      }
      if ((bool) || (bool)) {}
    }
    else
    {
      if (this.ub != null)
      {
        label101:
        i = 0;
        label312:
        label314:
        do
        {
          if (i >= this.ub.size()) {
            break;
          }
          locald = (d)this.ub.get(i);
          this.Z.g(locald);
          if (bool) {
            break label361;
          }
          zb localzb = this.Z.e(locald);
          if (k != 0) {
            break label360;
          }
          if (localzb.a() > 0)
          {
            a.c.e locale = this.ab[locald.e().f()].p.a;
            a.d.w localw1 = this.Z.r(locale);
            a.d.w localw2 = (a.d.w)this.vb.get(locale);
            double d1 = localw1.a - localw2.a;
            double d2 = localw1.b - localw2.b;
            int j = 0;
            do
            {
              if (j >= localzb.a()) {
                break;
              }
              a.d.w localw3 = localzb.a(j);
              localzb.a(j, localw3.a + d1, localw3.b + d2);
              j++;
              if (bool) {
                break label314;
              }
              if (k != 0) {
                break label312;
              }
            } while (k == 0);
          }
          if (!bool) {
            i++;
          }
        } while (k == 0);
      }
      new a.f.c.e(null, new a.f.c.k()
      {
        public Rectangle2D a(o paramAnonymouso, a.c.e paramAnonymouse, bb paramAnonymousbb)
        {
          if (!paramAnonymousbb.isEmpty()) {
            return super.a(paramAnonymouso, paramAnonymouse, paramAnonymousbb);
          }
          zc localzc = paramAnonymouso.k(paramAnonymouse);
          return new Rectangle2D.Double(localzc.a(), localzc.b(), localzc.c(), localzc.d());
        }
      }).doLayout(this.Z);
      this.tb = null;
      this.Lb = null;
    }
    if (!bool)
    {
      this.wb = null;
      label360:
      label361:
      if (!bool) {
        if (this.sb != null)
        {
          this.sb.e();
          this.sb = null;
        }
      }
    }
    this.ub = null;
  }
  
  private boolean a(o paramo, int[] paramArrayOfInt)
  {
    boolean bool = j.c;
    int n = j.b;
    if ((bool) || (paramo != null))
    {
      if (bool) {
        break label200;
      }
      if (paramo.j() >= 1) {}
    }
    else
    {
      return false;
    }
    this.Z = paramo;
    this.Y = 1;
    this.ib = new a.i.mb();
    this.bb = paramo.k();
    this.Q = f(this.R);
    this.ab = new b_[this.bb];
    this.rb = (1 + 100000 / this.bb);
    this.hb = (this.gb / (this.R * 6.0D));
    this.jb = Math.pow(this.R, -(this.pb + 1));
    this.kb = Math.pow(this.R, this.qb + 1);
    this.S = 0.0D;
    this.T = 0.0D;
    this.U = new c_();
    this.V = Math.max(20.0D * this.R, 10.0D);
    if (!bool) {
      if (y())
      {
        label200:
        this.db = new wb(666L);
        if (bool) {
          break label242;
        }
        if (n == 0) {
          break label238;
        }
      }
    }
    this.db = new wb();
    label238:
    label242:
    if (this.E == 2)
    {
      if (bool) {
        break label305;
      }
      d1 = Math.max(0.1D, Math.min(this.L * this.R * 0.75D, this.V));
      if (n == 0) {
        break label306;
      }
    }
    label305:
    double d1 = Math.max(0.1D, Math.min(this.L * this.R, this.V));
    label306:
    a.c.k localk = paramo.c(w);
    if ((B() != 0) && (localk == null)) {
      throw new IllegalStateException("No DataProvider that specifies which nodes are to be laid out.");
    }
    if (paramArrayOfInt == null)
    {
      if (bool) {
        break label380;
      }
      if (this.J == 1)
      {
        paramArrayOfInt = new int[this.bb];
        x localx = db.a(paramArrayOfInt);
        b.a(paramo, localk, localx);
      }
    }
    label380:
    int i = this.bb;
    int j = 0;
    if (!bool) {}
    int k;
    Object localObject1;
    Object localObject2;
    Object localObject3;
    switch (B())
    {
    case 0: 
      wc.a(paramo);
      if (this.Lb != null) {
        k = 0;
      }
      break;
    case 1: 
    case 2: 
      while (k < this.Lb.length)
      {
        if (bool) {
          break label1577;
        }
        if (n != 0) {
          break label1572;
        }
        if (this.Lb[k] >= 0) {
          i--;
        }
        k++;
        if (n != 0)
        {
          localObject1 = new boolean[paramo.j()];
          i = 0;
          if (bool) {
            break label960;
          }
          localObject2 = paramo.v();
          do
          {
            do
            {
              if (!((a.c.w)localObject2).e()) {
                break;
              }
              localObject3 = ((a.c.w)localObject2).d();
              if (bool) {
                break label950;
              }
              if (n != 0) {
                break label948;
              }
              if (((!bool) && (this.Lb == null)) || ((bool) || (this.Lb[localObject3.f()] < 0)))
              {
                if (!bool) {
                  if (localk.getBool(localObject3))
                  {
                    j++;
                    localObject1[localObject3.f()] = 1;
                  }
                }
                if ((bool) || (!localk.getBool(localObject3)))
                {
                  if (bool) {
                    continue;
                  }
                  if (paramArrayOfInt[localObject3.f()] < 5)
                  {
                    if (bool) {
                      continue;
                    }
                    if (paramArrayOfInt[localObject3.f()] < 0) {}
                  }
                }
                else
                {
                  i++;
                  localObject1[localObject3.f()] = 1;
                }
              }
              ((a.c.w)localObject2).f();
            } while (n == 0);
          } while (bool);
          if ((bool) || (j < 1)) {
            return false;
          }
          localObject2 = paramo.w();
          while (((m)localObject2).e())
          {
            localObject3 = ((m)localObject2).a();
            if (n != 0) {
              break label1874;
            }
            if (localObject1[localObject3.e().f()] == 0)
            {
              if (bool) {
                break label756;
              }
              if (localObject1[localObject3.f().f()] == 0) {}
            }
            else
            {
              wc.b(paramo, (d)localObject3);
            }
            ((m)localObject2).f();
            if (n != 0)
            {
              label756:
              i = 0;
              if (bool) {
                break label957;
              }
              localObject2 = paramo.w();
              do
              {
                if (!((m)localObject2).e()) {
                  break;
                }
                localObject3 = ((m)localObject2).a();
                if (n != 0) {
                  break label1874;
                }
                if (!localk.getBool(((d)localObject3).e()))
                {
                  if (bool) {
                    continue;
                  }
                  if (!localk.getBool(((d)localObject3).f())) {}
                }
                else
                {
                  wc.b(paramo, (d)localObject3);
                }
                ((m)localObject2).f();
              } while (n == 0);
              if (bool) {
                break label1881;
              }
              localObject2 = paramo.v();
              do
              {
                if (!((a.c.w)localObject2).e()) {
                  break;
                }
                localObject3 = ((a.c.w)localObject2).d();
                if (n != 0) {
                  break label1874;
                }
                if (localk.getBool(localObject3)) {
                  if ((bool) || (this.Lb != null))
                  {
                    if (bool) {
                      continue;
                    }
                    if (this.Lb[localObject3.f()] >= 0) {}
                  }
                  else
                  {
                    i++;
                  }
                }
                ((a.c.w)localObject2).f();
              } while (n == 0);
            }
          }
        }
      }
    }
    if (!bool)
    {
      label948:
      label950:
      this.cb = new b_[i];
      label957:
      label960:
      localObject1 = paramo.v();
      label1098:
      label1112:
      label1374:
      label1382:
      label1390:
      do
      {
        if (!((a.c.w)localObject1).e()) {
          break;
        }
        localObject2 = ((a.c.w)localObject1).d();
        if (n != 0) {
          break label1568;
        }
        switch (this.J)
        {
        case 0: 
        default: 
          localObject3 = new b_((a.c.e)localObject2, d1, true, this.R, this.bb, this.db, paramo, this.E);
          if (!bool) {
            if (this.Lb != null)
            {
              if (bool) {
                break label1112;
              }
              if (this.Lb[localObject2.f()] >= 0) {
                break label1098;
              }
            }
          }
          this.cb[(--i)] = localObject3;
          if (bool) {
            continue;
          }
          if (n != 0)
          {
            ((b_)localObject3).g = 0.0D;
            ((b_)localObject3).j = 0.0D;
            if (bool) {
              continue;
            }
            if (n == 0) {
              break;
            }
          }
          break;
        case 1: 
          if (localk.getBool(localObject2))
          {
            localObject3 = new b_((a.c.e)localObject2, d1, true, this.R, this.bb, this.db, paramo, this.E);
            if (!bool) {
              if (this.Lb != null)
              {
                if (bool) {
                  break label1222;
                }
                if (this.Lb[localObject2.f()] >= 0) {
                  break label1214;
                }
              }
            }
            this.cb[(--i)] = localObject3;
            if (bool) {
              continue;
            }
            if (n != 0)
            {
              ((b_)localObject3).g = 0.0D;
              if (bool) {
                continue;
              }
              if (n == 0) {
                break;
              }
            }
          }
          else
          {
            localObject3 = new b_((a.c.e)localObject2, d1 / (paramArrayOfInt[localObject2.f()] + 2), false, this.R, this.bb, this.db, paramo, this.E);
            ((b_)localObject3).n = paramArrayOfInt[localObject2.f()];
            if (!bool) {
              if (this.Lb != null)
              {
                if (bool) {
                  break label1390;
                }
                if (this.Lb[localObject2.f()] >= 0) {
                  break label1382;
                }
              }
            }
            if (!bool)
            {
              if (paramArrayOfInt[localObject2.f()] < 5)
              {
                if (bool) {
                  break label1374;
                }
                if (paramArrayOfInt[localObject2.f()] >= 0)
                {
                  this.cb[(--i)] = localObject3;
                  if (bool) {
                    continue;
                  }
                  if (n == 0) {
                    break;
                  }
                }
              }
              ((b_)localObject3).g = 0.0D;
            }
            if (bool) {
              continue;
            }
            if (n != 0)
            {
              ((b_)localObject3).g = 0.0D;
              if (bool) {
                continue;
              }
              if (n == 0) {
                break;
              }
            }
          }
          break;
        case 2: 
          if (localk.getBool(localObject2))
          {
            localObject3 = new b_((a.c.e)localObject2, d1, true, this.R, this.bb, this.db, paramo, this.E);
            if (!bool) {
              if (this.Lb != null)
              {
                if (bool) {
                  break label1500;
                }
                if (this.Lb[localObject2.f()] >= 0) {
                  break label1492;
                }
              }
            }
            this.cb[(--i)] = localObject3;
            if (bool) {
              continue;
            }
            if (n != 0)
            {
              ((b_)localObject3).g = 0.0D;
              if (bool) {
                continue;
              }
              if (n == 0) {
                break;
              }
            }
          }
          else
          {
            localObject3 = new b_((a.c.e)localObject2, 0.0D, false, this.R, this.bb, this.db, paramo, this.E);
          }
          break;
        }
        this.ab[localObject2.f()] = localObject3;
        ((a.c.w)localObject1).f();
      } while (n == 0);
      label1214:
      label1222:
      label1492:
      label1500:
      if (!bool)
      {
        int m = 0;
        do
        {
          if (m >= this.cb.length) {
            break;
          }
          localObject2 = this.cb[m];
          this.S += ((b_)localObject2).g;
          this.T += f(((b_)localObject2).g);
          this.U.a += ((b_)localObject2).h;
          this.U.b += ((b_)localObject2).i;
          this.U.d += ((b_)localObject2).j;
          m++;
          if ((!bool) && (n != 0)) {
            break label1709;
          }
        } while (n == 0);
        if (bool) {
          break label1874;
        }
        if (i > 0) {
          throw new RuntimeException("Unexpected number of nodes allocated!");
        }
        if (!bool)
        {
          if (paramo.c(I) == null)
          {
            if (bool) {
              break label1866;
            }
            if (this.J != 1) {}
          }
          else
          {
            this.eb = true;
            this.lb = new double[paramo.l()];
            this.mb = new double[paramo.l()];
          }
        }
        else
        {
          m localm = paramo.w();
          while (localm.e())
          {
            localObject2 = localm.a();
            double d2 = a((d)localObject2);
            this.lb[localObject2.d()] = Math.pow(d2, -(this.pb + 1));
            this.mb[localObject2.d()] = Math.pow(d2, this.qb + 1);
            localm.f();
            if (bool) {
              break label1874;
            }
            if (bool) {
              break label1886;
            }
            if (n != 0) {
              break label1881;
            }
          }
        }
        this.eb = false;
      }
      label1568:
      label1572:
      label1577:
      label1709:
      label1866:
      if (B() != 0) {
        label1874:
        J();
      }
    }
    label1881:
    label1886:
    if (!bool) {}
    return this.cb.length > 0;
  }
  
  private void J()
  {
    boolean bool = j.c;
    int m = j.b;
    z localz = new z();
    x localx = this.Z.B();
    Object localObject1 = new Object();
    Object localObject2 = new Object();
    a.c.k localk = this.Z.c(w);
    Object localObject3 = this.Z.v();
    label187:
    do
    {
      do
      {
        if (!((a.c.w)localObject3).e()) {
          break;
        }
        a.c.e locale1 = ((a.c.w)localObject3).d();
        if (m != 0) {
          break label213;
        }
        if (localk.getBool(locale1))
        {
          a.c.w localw1 = locale1.o();
          do
          {
            if (!localw1.e()) {
              break label187;
            }
            a.c.e locale2 = localw1.d();
            if (m != 0) {
              break;
            }
            if ((localk.getBool(locale2)) && ((bool) || (localx.get(locale2) == null)))
            {
              localx.a(locale2, localObject1);
              localz.b(locale2);
            }
            localw1.f();
          } while (m == 0);
        }
        ((a.c.w)localObject3).f();
      } while (bool);
    } while (m == 0);
    label213:
    if ((bool) || (!localz.isEmpty())) {}
    label323:
    while (bool)
    {
      localObject3 = (a.c.e)localz.b();
      int i = 0;
      int j = 0;
      int k = 0;
      if (m != 0) {
        return;
      }
      a.c.w localw2 = ((a.c.e)localObject3).o();
      do
      {
        do
        {
          if (!localw2.e()) {
            break label399;
          }
          a.c.e locale3 = localw2.d();
          if (m != 0) {
            break;
          }
          if (localx.get(locale3) == null)
          {
            if (bool) {
              break label323;
            }
            if (localk.getBool(locale3))
            {
              localx.a(locale3, localObject1);
              localz.b(locale3);
            }
          }
          if (!bool)
          {
            if ((localk.getBool(locale3)) || (localx.get(locale3) == localObject2)) {
              j = (int)(j + this.ab[locale3.f()].h);
            }
          }
          else
          {
            k = (int)(k + this.ab[locale3.f()].i);
            i++;
          }
          localw2.f();
        } while (m == 0);
      } while (bool);
      if (!bool)
      {
        if (i > 0)
        {
          this.ab[localObject3.f()].h = (j / i);
          this.ab[localObject3.f()].i = (k / i);
        }
        localx.a(localObject3, localObject2);
      }
      if (m == 0) {
        break;
      }
    }
    label399:
    this.Z.a(localx);
  }
  
  private b_ d(int paramInt)
  {
    int i = this.cb.length;
    int j = i - paramInt % i - 1;
    int k = this.db.nextInt(j + 1);
    b_ localb_ = this.cb[k];
    this.cb[k] = this.cb[j];
    this.cb[j] = localb_;
    return localb_;
  }
  
  private void a(b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int m = j.b;
    int i = paramb_.a.f();
    double d3;
    double d2;
    double d1 = d2 = d3 = 0.0D;
    this.Y += 1;
    paramb_.f = this.Y;
    if ((bool) || (paramb_.s != null))
    {
      if (bool) {
        break label104;
      }
      if (paramb_.r > 0.0D)
      {
        if (bool) {
          break label104;
        }
        d4 = Math.pow(paramb_.q / paramb_.r, 3.0D) * this.Fb;
        if (m == 0) {
          break label106;
        }
      }
    }
    label104:
    double d4 = 0.0D;
    label106:
    int j = this.wb == null ? 1 : 0;
    Object localObject2;
    double d6;
    double d7;
    label523:
    label533:
    label800:
    label945:
    label955:
    if (paramb_.o == 3)
    {
      localObject1 = this.sb.g(paramb_.a).f();
      b_ localb_1;
      b_ localb_2;
      double d8;
      label326:
      label360:
      label378:
      double d10;
      double d12;
      double d14;
      double d16;
      label503:
      do
      {
        do
        {
          if (localObject1 == null) {
            break;
          }
          if (bool) {
            break label974;
          }
          localObject2 = (d)((v)localObject1).c();
          localb_1 = this.ab[localObject2.e().f()];
          localb_2 = this.ab[localObject2.f().f()];
          localb_2.f = this.Y;
          if (m != 0) {
            break label968;
          }
          if (localb_1.p != null)
          {
            if (bool) {
              break label326;
            }
            if (localb_1.p.o == 3)
            {
              d6 = localb_1.p.h + localb_1.h - (paramb_.h + localb_2.h);
              d7 = localb_1.p.i + localb_1.i - (paramb_.i + localb_2.i);
              d8 = localb_1.p.j + localb_1.j - (paramb_.j + localb_2.j);
              if (bool) {
                break label360;
              }
              if (m == 0) {
                break label378;
              }
            }
          }
          d6 = localb_1.h - (paramb_.h + localb_2.h);
          d7 = localb_1.i - (paramb_.i + localb_2.i);
          d8 = localb_1.j - (paramb_.j + localb_2.j);
          d10 = d6 * d6 + d7 * d7 + d8 * d8;
          d12 = 1.0D;
          if (!bool) {
            if (this.X)
            {
              d14 = Math.sqrt(d10);
              d16 = d14 - (localb_1.k + localb_2.k);
              if (!bool)
              {
                if (d16 <= 0.0D) {
                  break label533;
                }
                d12 = this.Eb * Math.pow(d16, this.Gb + 1) / d14;
                if (bool) {
                  break label523;
                }
              }
              if (m == 0) {
                break label503;
              }
            }
          }
          d12 = this.Eb * Math.pow(d10, this.Gb * 0.5D);
          d1 += d6 * d12;
          d2 += d7 * d12;
          d3 += d8 * d12;
          localObject1 = ((v)localObject1).a();
        } while (m == 0);
      } while (bool);
      localObject1 = this.sb.h(paramb_.a).f();
      label748:
      do
      {
        if (localObject1 == null) {
          break;
        }
        if (bool) {
          break label974;
        }
        localObject2 = (d)((v)localObject1).c();
        localb_1 = this.ab[localObject2.f().f()];
        localb_2 = this.ab[localObject2.e().f()];
        localb_2.f = this.Y;
        if (m != 0) {
          break label968;
        }
        if (localb_1.p != null)
        {
          if (bool) {
            break label748;
          }
          if (localb_1.p.o == 3)
          {
            d6 = localb_1.p.h + localb_1.h - (paramb_.h + localb_2.h);
            d7 = localb_1.p.i + localb_1.i - (paramb_.i + localb_2.i);
            d8 = localb_1.p.j + localb_1.j - (paramb_.j + localb_2.j);
            if (bool) {
              break label782;
            }
            if (m == 0) {
              break label800;
            }
          }
        }
        d6 = localb_1.h - (paramb_.h + localb_2.h);
        d7 = localb_1.i - (paramb_.i + localb_2.i);
        d8 = localb_1.j - (paramb_.j + localb_2.j);
        d10 = d6 * d6 + d7 * d7 + d8 * d8;
        d12 = 1.0D;
        if (!bool) {
          if (this.X)
          {
            d14 = Math.sqrt(d10);
            d16 = d14 - (localb_1.k + localb_2.k);
            if (!bool)
            {
              if (d16 <= 0.0D) {
                break label955;
              }
              d12 = this.Eb * Math.pow(d16, this.Gb + 1) / d14;
              if (bool) {
                break label945;
              }
            }
            if (m == 0) {
              break label925;
            }
          }
        }
        d12 = this.Eb * Math.pow(d10, this.Gb * 0.5D);
        d1 += d6 * d12;
        d2 += d7 * d12;
        d3 += d8 * d12;
        localObject1 = ((v)localObject1).a();
      } while (m == 0);
    }
    label782:
    label925:
    label968:
    label974:
    Object localObject1 = paramb_.a.i();
    b_ localb_3;
    double d5;
    label1102:
    label1124:
    label1136:
    double d9;
    double d11;
    double d13;
    double d15;
    label1224:
    label1873:
    do
    {
      if (localObject1 == null) {
        break;
      }
      localObject2 = this.ab[localObject1.e().f()];
      ((b_)localObject2).f = this.Y;
      localb_3 = ((b_)localObject2).p;
      if (m != 0) {
        break label1891;
      }
      if (localb_3 != null)
      {
        if (bool) {
          break label1102;
        }
        if (localb_3.o == 3)
        {
          d5 = localb_3.h + ((b_)localObject2).h - paramb_.h;
          d6 = localb_3.i + ((b_)localObject2).i - paramb_.i;
          d7 = localb_3.j + ((b_)localObject2).j - paramb_.j;
          if (bool) {
            break label1124;
          }
          if (m == 0) {
            break label1136;
          }
        }
      }
      d5 = ((b_)localObject2).h - paramb_.h;
      d6 = ((b_)localObject2).i - paramb_.i;
      d7 = ((b_)localObject2).j - paramb_.j;
      d9 = d5 * d5 + d6 * d6 + d7 * d7;
      d11 = 1.0D;
      d13 = Math.sqrt(d9);
      if ((bool) || (d13 != 0.0D))
      {
        if (this.X)
        {
          d15 = Math.max(1.0E-006D, d13 - (paramb_.k + ((b_)localObject2).k));
          if (bool) {
            break label1224;
          }
          if (m == 0) {}
        }
        else
        {
          d15 = d13;
        }
        if (!bool) {
          if (j == 0)
          {
            if (bool) {
              break label1569;
            }
            if (this.wb[localObject1.d()] != 0) {
              break label1559;
            }
          }
        }
        if (!bool) {}
        switch (this.pb)
        {
        case 0: 
          d11 = d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        case 1: 
          d11 = d15 * d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        case 2: 
          d11 = d15 * d15 * d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        default: 
          d11 = Math.pow(d15, this.pb + 1) * this.lb[localObject1.d()];
        }
        if (!bool) {
          switch (this.qb)
          {
          case 0: 
            d11 -= this.mb[localObject1.d()] / d15;
            if (bool) {
              break label1863;
            }
            if (m == 0) {
              break;
            }
          case 1: 
            d11 -= this.mb[localObject1.d()] / (d15 * d15);
            if (bool) {
              break label1863;
            }
            if (m == 0) {
              break;
            }
          case 2: 
            d11 -= this.mb[localObject1.d()] / (d15 * d15 * d15);
            if (bool) {
              break label1863;
            }
            if (m == 0) {
              break;
            }
          default: 
            d11 -= this.mb[localObject1.d()] / Math.pow(d15, this.qb + 1);
            if (bool) {
              break label1863;
            }
          }
        } else if (m != 0) {
          if (!bool)
          {
            switch (this.wb[localObject1.d()])
            {
            default: 
              d11 = 0.0D;
              if (bool) {
                break label1863;
              }
              if (m == 0) {
                break;
              }
            case 3: 
              d11 = this.Eb * Math.pow(d13, this.Gb + 1);
              if (!bool) {
                switch (this.qb)
                {
                case 0: 
                  d11 -= this.mb[localObject1.d()] / d15;
                  if (bool) {
                    break label1863;
                  }
                  if (m == 0) {
                    break;
                  }
                case 1: 
                  d11 -= this.mb[localObject1.d()] / (d15 * d15);
                  if (bool) {
                    break label1863;
                  }
                  if (m == 0) {
                    break;
                  }
                case 2: 
                  d11 -= this.mb[localObject1.d()] / (d15 * d15 * d15);
                  if (bool) {
                    break label1863;
                  }
                  if (m == 0) {
                    break;
                  }
                default: 
                  d11 -= this.mb[localObject1.d()] / Math.pow(d15, this.qb + 1);
                  if (bool) {
                    break label1863;
                  }
                }
              }
              if (m == 0) {
                break;
              }
            case 1: 
              d11 = d4 * Math.pow(d13, this.Ib + 1);
              if (bool) {
                break label1863;
              }
              if (m == 0) {
                break;
              }
            }
          }
          else
          {
            if (bool) {
              continue;
            }
            if (m == 0) {
              break label1873;
            }
          }
        }
        d11 /= d13;
        d1 += d5 * d11;
        d2 += d6 * d11;
        d3 += d7 * d11;
      }
      localObject1 = ((d)localObject1).j();
    } while (m == 0);
    label1559:
    label1569:
    label1863:
    if (!bool) {
      label1891:
      localObject1 = paramb_.a.h();
    }
    label2030:
    do
    {
      if (localObject1 == null) {
        break;
      }
      localObject2 = this.ab[localObject1.f().f()];
      ((b_)localObject2).f = this.Y;
      localb_3 = ((b_)localObject2).p;
      if (m != 0) {
        return;
      }
      if (!bool) {
        if (localb_3 != null)
        {
          if (bool) {
            break label2030;
          }
          if (localb_3.o == 3)
          {
            d5 = localb_3.h + ((b_)localObject2).h - paramb_.h;
            d6 = localb_3.i + ((b_)localObject2).i - paramb_.i;
            d7 = localb_3.j + ((b_)localObject2).j - paramb_.j;
            if (bool) {
              break label2052;
            }
            if (m == 0) {
              break label2064;
            }
          }
        }
      }
      d5 = ((b_)localObject2).h - paramb_.h;
      d6 = ((b_)localObject2).i - paramb_.i;
      d7 = ((b_)localObject2).j - paramb_.j;
      d9 = d5 * d5 + d6 * d6 + d7 * d7;
      d11 = 1.0D;
      d13 = Math.sqrt(d9);
      if ((bool) || (d13 != 0.0D))
      {
        if (this.X)
        {
          d15 = Math.max(1.0E-006D, d13 - (paramb_.k + ((b_)localObject2).k));
          if (bool) {
            break label2152;
          }
          if (m == 0) {}
        }
        else
        {
          d15 = d13;
        }
        if (!bool) {
          if (j == 0)
          {
            if (bool) {
              break label2497;
            }
            if (this.wb[localObject1.d()] != 0) {
              break label2487;
            }
          }
        }
        if (!bool) {}
        switch (this.pb)
        {
        case 0: 
          d11 = d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        case 1: 
          d11 = d15 * d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        case 2: 
          d11 = d15 * d15 * d15 * this.lb[localObject1.d()];
          if (!bool) {
            if (m == 0) {
              break;
            }
          }
          break;
        default: 
          d11 = Math.pow(d15, this.pb + 1) * this.lb[localObject1.d()];
        }
        if (!bool) {
          switch (this.qb)
          {
          case 0: 
            d11 -= this.mb[localObject1.d()] / d15;
            if (bool) {
              break label2825;
            }
            if (m == 0) {
              break;
            }
          case 1: 
            d11 -= this.mb[localObject1.d()] / (d15 * d15);
            if (bool) {
              break label2825;
            }
            if (m == 0) {
              break;
            }
          case 2: 
            d11 -= this.mb[localObject1.d()] / (d15 * d15 * d15);
            if (bool) {
              break label2825;
            }
            if (m == 0) {
              break;
            }
          default: 
            d11 -= this.mb[localObject1.d()] / Math.pow(d15, this.qb + 1);
            if (bool) {
              break label2825;
            }
          }
        } else if (m != 0) {
          if (!bool)
          {
            switch (this.wb[localObject1.d()])
            {
            default: 
              d11 = 0.0D;
              if (bool) {
                break label2825;
              }
              if (m == 0) {
                break;
              }
            case 3: 
              d11 = this.Eb * Math.pow(d13, this.Gb + 1);
              if (!bool) {
                switch (this.qb)
                {
                case 0: 
                  d11 -= this.mb[localObject1.d()] / d15;
                  if (bool) {
                    break label2825;
                  }
                  if (m == 0) {
                    break;
                  }
                case 1: 
                  d11 -= this.mb[localObject1.d()] / (d15 * d15);
                  if (bool) {
                    break label2825;
                  }
                  if (m == 0) {
                    break;
                  }
                case 2: 
                  d11 -= this.mb[localObject1.d()] / (d15 * d15 * d15);
                  if (bool) {
                    break label2825;
                  }
                  if (m == 0) {
                    break;
                  }
                default: 
                  d11 -= this.mb[localObject1.d()] / Math.pow(d15, this.qb + 1);
                  if (bool) {
                    break label2825;
                  }
                }
              }
              if (m == 0) {
                break;
              }
            case 1: 
              int k = ((b_)localObject2).a.f();
              double d17 = Math.pow(((b_)localObject2).q / ((b_)localObject2).r, 3.0D) * this.Fb;
              d11 = d17 * Math.pow(d13, this.Ib + 1);
              if (bool) {
                break label2825;
              }
              if (m == 0) {
                break;
              }
            }
          }
          else
          {
            if (bool) {
              continue;
            }
            if (m == 0) {
              break label2835;
            }
          }
        }
        d11 /= d13;
        d1 += d5 * d11;
        d2 += d6 * d11;
        d3 += d7 * d11;
      }
      localObject1 = ((d)localObject1).i();
    } while (m == 0);
    label2052:
    label2064:
    label2152:
    paramc_.a += d1;
    label2487:
    label2497:
    paramc_.b += d2;
    label2825:
    label2835:
    if (!bool) {
      paramc_.d += d3;
    }
  }
  
  private void b(b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int i = j.b;
    b_ localb_1 = paramb_;
    if (((bool) || (localb_1 != null)) && ((bool) || (localb_1.o == 3)))
    {
      v localv = localb_1.s.f();
      do
      {
        if (localv == null) {
          break;
        }
        b_ localb_2 = this.ab[((a.c.e)localv.c()).f()];
        double d1 = localb_2.h;
        double d2 = localb_2.i;
        double d3 = localb_2.j;
        localb_2.h += localb_1.h;
        localb_2.i += localb_1.i;
        localb_2.j += localb_1.j;
        localb_2.f = paramb_.f;
        c(localb_2, paramc_);
        localb_2.h = d1;
        localb_2.i = d2;
        localb_2.j = d3;
        localv = localv.a();
        if ((!bool) && (i != 0)) {
          return;
        }
      } while (i == 0);
    }
    if (!bool) {
      c(paramb_, paramc_);
    }
  }
  
  private void c(b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int j = j.b;
    double d3;
    double d2;
    double d1 = d2 = d3 = 0.0D;
    int i = this.bb - 1;
    label194:
    label217:
    label229:
    do
    {
      if (i < 0) {
        break;
      }
      b_ localb_1 = this.ab[i];
      if (!bool)
      {
        if (j != 0) {
          return;
        }
        if (bool) {}
      }
      else
      {
        if (localb_1.f == paramb_.f) {
          break label473;
        }
      }
      b_ localb_2 = localb_1.p;
      if (!bool) {
        if (localb_2 != null)
        {
          if (bool) {
            break label194;
          }
          if (localb_2.o == 3)
          {
            if ((!bool) && ((localb_2 == paramb_) || ((!bool) && (localb_2 == paramb_.p)))) {
              break label473;
            }
            d4 = paramb_.h - (localb_2.h + localb_1.h);
            d5 = paramb_.i - (localb_2.i + localb_1.i);
            d6 = paramb_.j - (localb_2.j + localb_1.j);
            if (bool) {
              break label217;
            }
            if (j == 0) {
              break label229;
            }
          }
        }
      }
      double d4 = paramb_.h - localb_1.h;
      double d5 = paramb_.i - localb_1.i;
      double d6 = paramb_.j - localb_1.j;
      double d7 = d4 * d4 + d5 * d5 + d6 * d6;
      if (!bool)
      {
        if (d7 != 0.0D)
        {
          double d8 = 1.0D;
          double d9 = Math.sqrt(d7);
          double d10;
          if (this.X)
          {
            d10 = Math.max(1.0E-006D, d9 - (paramb_.k + localb_1.k));
            if (bool) {
              break label321;
            }
            if (j == 0) {}
          }
          else
          {
            d10 = d9;
          }
          if (!bool) {
            switch (this.qb)
            {
            case 0: 
              d8 = this.kb / (d10 * d9);
              if (bool) {
                break label463;
              }
              if (j == 0) {
                break;
              }
            case 1: 
              d8 = this.kb / (d10 * d10 * d9);
              if (bool) {
                break label463;
              }
              if (j == 0) {
                break;
              }
            case 2: 
              d8 = this.kb / (d10 * d10 * d10 * d9);
              if (bool) {
                break label463;
              }
              if (j == 0) {
                break;
              }
            }
          } else {
            d8 = this.kb / (Math.pow(d10, this.qb + 1) * d9);
          }
          d1 += d4 * d8;
          d2 += d5 * d8;
          d3 += d6 * d8;
        }
        i--;
      }
    } while (j == 0);
    label321:
    label463:
    label473:
    paramc_.a += d1;
    paramc_.b += d2;
    if (!bool) {
      paramc_.d += d3;
    }
  }
  
  private void a(int paramInt, b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int m = j.b;
    double d3;
    double d2;
    double d1 = d2 = d3 = 0.0D;
    this.Y += 1;
    paramb_.f = this.Y;
    int i = paramb_.a.f();
    if ((bool) || (paramb_.o == 1))
    {
      if (bool) {
        break label92;
      }
      d4 = Math.pow(paramb_.q / paramb_.r, 3.0D) * this.Fb;
      if (m == 0) {
        break label94;
      }
    }
    label92:
    double d4 = 0.0D;
    label94:
    int j = this.wb != null ? 1 : 0;
    b_ localb_1;
    label314:
    label348:
    label366:
    double d11;
    double d12;
    double d13;
    double d14;
    label521:
    label788:
    label933:
    label943:
    if (paramb_.o == 3)
    {
      localObject = this.sb.g(paramb_.a).f();
      d locald;
      b_ localb_2;
      double d6;
      double d8;
      double d10;
      label491:
      label511:
      do
      {
        do
        {
          if (localObject == null) {
            break;
          }
          if (bool) {
            break label962;
          }
          locald = (d)((v)localObject).c();
          localb_1 = this.ab[locald.e().f()];
          localb_2 = this.ab[locald.f().f()];
          localb_2.f = this.Y;
          if (m != 0) {
            break label956;
          }
          if (localb_1.p != null)
          {
            if (bool) {
              break label314;
            }
            if (localb_1.p.o == 3)
            {
              d6 = localb_1.p.h + localb_1.h - (paramb_.h + localb_2.h);
              d8 = localb_1.p.i + localb_1.i - (paramb_.i + localb_2.i);
              d10 = localb_1.p.j + localb_1.j - (paramb_.j + localb_2.j);
              if (bool) {
                break label348;
              }
              if (m == 0) {
                break label366;
              }
            }
          }
          d6 = localb_1.h - (paramb_.h + localb_2.h);
          d8 = localb_1.i - (paramb_.i + localb_2.i);
          d10 = localb_1.j - (paramb_.j + localb_2.j);
          d11 = d6 * d6 + d8 * d8 + d10 * d10;
          d12 = 1.0D;
          if (!bool) {
            if (this.X)
            {
              d13 = Math.sqrt(d11);
              d14 = d13 - (localb_1.k + localb_2.k);
              if (!bool)
              {
                if (d14 <= 0.0D) {
                  break label521;
                }
                d12 = this.Eb * Math.pow(d14, this.Gb + 1) / d13;
                if (bool) {
                  break label511;
                }
              }
              if (m == 0) {
                break label491;
              }
            }
          }
          d12 = this.Eb * Math.pow(d11, this.Gb * 0.5D);
          d1 += d6 * d12;
          d2 += d8 * d12;
          d3 += d10 * d12;
          localObject = ((v)localObject).a();
        } while (m == 0);
      } while (bool);
      localObject = this.sb.h(paramb_.a).f();
      label736:
      do
      {
        if (localObject == null) {
          break;
        }
        if (bool) {
          break label962;
        }
        locald = (d)((v)localObject).c();
        localb_1 = this.ab[locald.f().f()];
        localb_2 = this.ab[locald.e().f()];
        localb_2.f = this.Y;
        if (m != 0) {
          break label956;
        }
        if (localb_1.p != null)
        {
          if (bool) {
            break label736;
          }
          if (localb_1.p.o == 3)
          {
            d6 = localb_1.p.h + localb_1.h - (paramb_.h + localb_2.h);
            d8 = localb_1.p.i + localb_1.i - (paramb_.i + localb_2.i);
            d10 = localb_1.p.j + localb_1.j - (paramb_.j + localb_2.j);
            if (bool) {
              break label770;
            }
            if (m == 0) {
              break label788;
            }
          }
        }
        d6 = localb_1.h - (paramb_.h + localb_2.h);
        d8 = localb_1.i - (paramb_.i + localb_2.i);
        d10 = localb_1.j - (paramb_.j + localb_2.j);
        d11 = d6 * d6 + d8 * d8 + d10 * d10;
        d12 = 1.0D;
        if (!bool) {
          if (this.X)
          {
            d13 = Math.sqrt(d11);
            d14 = d13 - (localb_1.k + localb_2.k);
            if (!bool)
            {
              if (d14 <= 0.0D) {
                break label943;
              }
              d12 = this.Eb * Math.pow(d14, this.Gb + 1) / d13;
              if (bool) {
                break label933;
              }
            }
            if (m == 0) {
              break label913;
            }
          }
        }
        d12 = this.Eb * Math.pow(d11, this.Gb * 0.5D);
        d1 += d6 * d12;
        d2 += d8 * d12;
        d3 += d10 * d12;
        localObject = ((v)localObject).a();
      } while (m == 0);
    }
    label770:
    label913:
    label956:
    label962:
    Object localObject = paramb_.a.i();
    int k;
    b_ localb_3;
    double d5;
    double d7;
    double d9;
    label1093:
    label1115:
    label1127:
    label1392:
    do
    {
      if (localObject == null) {
        break;
      }
      if (bool) {
        break label1733;
      }
      k = ((d)localObject).d();
      localb_1 = this.ab[localObject.e().f()];
      localb_3 = localb_1.p;
      if (m != 0) {
        break label1727;
      }
      if (localb_3 != null)
      {
        if (bool) {
          break label1093;
        }
        if (localb_3.o == 3)
        {
          d5 = localb_3.h + localb_1.h - paramb_.h;
          d7 = localb_3.i + localb_1.i - paramb_.i;
          d9 = localb_3.j + localb_1.j - paramb_.j;
          if (bool) {
            break label1115;
          }
          if (m == 0) {
            break label1127;
          }
        }
      }
      d5 = localb_1.h - paramb_.h;
      d7 = localb_1.i - paramb_.i;
      d9 = localb_1.j - paramb_.j;
      d11 = d5 * d5 + d7 * d7 + d9 * d9;
      d12 = 1.0D;
      if (!bool) {
        if (j != 0)
        {
          if (bool) {
            break label1392;
          }
          if (this.wb[k] != 0)
          {
            if (!bool) {
              switch (this.wb[k])
              {
              default: 
                if (bool) {
                  continue;
                }
                if (m == 0) {
                  break label1709;
                }
              case 1: 
                localb_1.f = this.Y;
                d12 = d4 * Math.pow(d11, this.Ib * 0.5D);
                if (bool) {
                  break label1699;
                }
                if (m == 0) {
                  break;
                }
              case 3: 
                if (!bool)
                {
                  if (this.X)
                  {
                    d13 = Math.sqrt(d11);
                    d14 = d13 - (localb_1.k + paramb_.k);
                    if (bool) {
                      continue;
                    }
                    if (d14 <= 0.0D) {
                      break label1709;
                    }
                    d12 = this.Eb * Math.pow(d14, this.Gb + 1) / d13;
                    if (bool) {
                      break label1699;
                    }
                    if (m == 0) {
                      break;
                    }
                  }
                  d12 = this.Eb * Math.pow(d11, this.Gb * 0.5D);
                  if (bool) {
                    break label1699;
                  }
                }
                if (m == 0) {
                  break;
                }
              case 2: 
                localb_1.f = this.Y;
              }
            }
            if (bool) {
              continue;
            }
            if (m == 0) {
              break label1709;
            }
          }
        }
      }
      if (!bool) {
        if (this.X)
        {
          d13 = Math.sqrt(d11);
          d14 = d13 - (localb_1.k + paramb_.k);
          if ((!bool) && (d14 <= 0.0D)) {
            break label1709;
          }
          if (!bool) {
            switch (paramInt)
            {
            case 0: 
              d12 = d14 * this.jb / d13;
              if (bool) {
                break label1699;
              }
              if (m == 0) {
                break;
              }
            case 1: 
              d12 = d14 * d14 * this.jb / d13;
              if (bool) {
                break label1699;
              }
              if (m == 0) {
                break;
              }
            case 2: 
              d12 = d14 * d14 * d14 * this.jb / d13;
              if (bool) {
                break label1699;
              }
              if (m == 0) {
                break;
              }
            default: 
              d12 = this.jb * Math.pow(d14, paramInt + 1) / d13;
              if (bool) {
                break label1699;
              }
            }
          }
          if (m == 0) {
            break label1679;
          }
        }
      }
      if (!bool) {}
      switch (paramInt)
      {
      case 0: 
        d12 = this.jb;
        if (bool) {
          break label1699;
        }
        if (m == 0) {
          break;
        }
      case 1: 
        d12 = this.jb * Math.sqrt(d11);
        if (bool) {
          break label1699;
        }
        if (m == 0) {
          break;
        }
      case 2: 
        d12 = this.jb * d11;
        if (bool) {
          break label1699;
        }
        if (m == 0) {
          break;
        }
      default: 
        d12 = this.jb * Math.pow(d11, paramInt * 0.5D);
      }
      d1 += d5 * d12;
      d2 += d7 * d12;
      d3 += d9 * d12;
      localObject = ((d)localObject).j();
    } while (m == 0);
    label1679:
    label1699:
    label1709:
    if (!bool) {
      label1727:
      label1733:
      localObject = paramb_.a.h();
    }
    label1864:
    label1886:
    label1898:
    do
    {
      if (localObject == null) {
        break;
      }
      k = ((d)localObject).d();
      localb_1 = this.ab[localObject.f().f()];
      localb_3 = localb_1.p;
      if (m != 0) {
        return;
      }
      if (!bool) {
        if (localb_3 != null)
        {
          if (bool) {
            break label1864;
          }
          if (localb_3.o == 3)
          {
            d5 = localb_3.h + localb_1.h - paramb_.h;
            d7 = localb_3.i + localb_1.i - paramb_.i;
            d9 = localb_3.j + localb_1.j - paramb_.j;
            if (bool) {
              break label1886;
            }
            if (m == 0) {
              break label1898;
            }
          }
        }
      }
      d5 = localb_1.h - paramb_.h;
      d7 = localb_1.i - paramb_.i;
      d9 = localb_1.j - paramb_.j;
      d11 = d5 * d5 + d7 * d7 + d9 * d9;
      d12 = 1.0D;
      if (!bool) {
        if (j != 0)
        {
          if (bool) {
            break label2184;
          }
          if (this.wb[k] != 0)
          {
            if (!bool) {
              switch (this.wb[k])
              {
              default: 
                if (bool) {
                  continue;
                }
                if (m == 0) {
                  break label2501;
                }
              case 1: 
                localb_1.f = this.Y;
                d12 = Math.pow(localb_1.q / localb_1.r, 3.0D) * this.Fb * Math.pow(d11, this.Ib * 0.5D);
                if (bool) {
                  break label2491;
                }
                if (m == 0) {
                  break;
                }
              case 3: 
                if (!bool)
                {
                  if (this.X)
                  {
                    d13 = Math.sqrt(d11);
                    d14 = d13 - (localb_1.k + paramb_.k);
                    if (bool) {
                      continue;
                    }
                    if (d14 <= 0.0D) {
                      break label2501;
                    }
                    d12 = this.Eb * Math.pow(d14, this.Gb + 1) / d13;
                    if (bool) {
                      break label2491;
                    }
                    if (m == 0) {
                      break;
                    }
                  }
                  d12 = this.Eb * Math.pow(d11, this.Gb * 0.5D);
                  if (bool) {
                    break label2491;
                  }
                }
                if (m == 0) {
                  break;
                }
              case 2: 
                localb_1.f = this.Y;
              }
            }
            if (bool) {
              continue;
            }
            if (m == 0) {
              break label2501;
            }
          }
        }
      }
      if (!bool) {
        if (this.X)
        {
          d13 = Math.sqrt(d11);
          d14 = d13 - (localb_1.k + paramb_.k);
          if ((!bool) && (d14 <= 0.0D)) {
            break label2501;
          }
          if (!bool) {
            switch (paramInt)
            {
            case 0: 
              d12 = d14 * this.jb / d13;
              if (bool) {
                break label2491;
              }
              if (m == 0) {
                break;
              }
            case 1: 
              d12 = d14 * d14 * this.jb / d13;
              if (bool) {
                break label2491;
              }
              if (m == 0) {
                break;
              }
            case 2: 
              d12 = d14 * d14 * d14 * this.jb / d13;
              if (bool) {
                break label2491;
              }
              if (m == 0) {
                break;
              }
            default: 
              d12 = this.jb * Math.pow(d14, paramInt + 1) / d13;
              if (bool) {
                break label2491;
              }
            }
          }
          if (m == 0) {
            break label2471;
          }
        }
      }
      if (!bool) {}
      switch (paramInt)
      {
      case 0: 
        d12 = this.jb;
        if (bool) {
          break label2491;
        }
        if (m == 0) {
          break;
        }
      case 1: 
        d12 = this.jb * Math.sqrt(d11);
        if (bool) {
          break label2491;
        }
        if (m == 0) {
          break;
        }
      case 2: 
        d12 = this.jb * d11;
        if (bool) {
          break label2491;
        }
        if (m == 0) {
          break;
        }
      default: 
        d12 = this.jb * Math.pow(d11, paramInt * 0.5D);
      }
      d1 += d5 * d12;
      d2 += d7 * d12;
      d3 += d9 * d12;
      localObject = ((d)localObject).i();
    } while (m == 0);
    label2184:
    label2471:
    label2491:
    label2501:
    paramc_.a += d1;
    paramc_.b += d2;
    if (!bool) {
      paramc_.d += d3;
    }
  }
  
  private void b(int paramInt, b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int i = j.b;
    b_ localb_1 = paramb_;
    if (((bool) || (localb_1 != null)) && ((bool) || (localb_1.o == 3)))
    {
      v localv = localb_1.s.f();
      do
      {
        if (localv == null) {
          break;
        }
        b_ localb_2 = this.ab[((a.c.e)localv.c()).f()];
        double d1 = localb_2.h;
        double d2 = localb_2.i;
        double d3 = localb_2.j;
        localb_2.h += localb_1.h;
        localb_2.i += localb_1.i;
        localb_2.j += localb_1.j;
        localb_2.f = paramb_.f;
        d(paramInt, localb_2, paramc_);
        localb_2.h = d1;
        localb_2.i = d2;
        localb_2.j = d3;
        localv = localv.a();
        if ((!bool) && (i != 0)) {
          return;
        }
      } while (i == 0);
    }
    if (!bool) {
      d(paramInt, paramb_, paramc_);
    }
  }
  
  private void d(int paramInt, b_ paramb_, c_ paramc_)
  {
    boolean bool = j.c;
    int k = j.b;
    double d3;
    double d2;
    double d1 = d2 = d3 = 0.0D;
    int i = this.wb != null ? 1 : 0;
    int j = this.bb - 1;
    label219:
    label242:
    label254:
    do
    {
      if (j < 0) {
        break;
      }
      b_ localb_1 = this.ab[j];
      if ((!bool) && (k != 0)) {
        return;
      }
      if (((!bool) && ((i != 0) && (bool))) || (localb_1.f != paramb_.f))
      {
        b_ localb_2 = localb_1.p;
        if (!bool) {
          if (localb_2 != null)
          {
            if (bool) {
              break label219;
            }
            if (localb_2.o == 3)
            {
              if ((!bool) && ((localb_2 == paramb_) || ((!bool) && (localb_2 == paramb_.p)))) {
                break label644;
              }
              d4 = paramb_.h - (localb_2.h + localb_1.h);
              d5 = paramb_.i - (localb_2.i + localb_1.i);
              d6 = paramb_.j - (localb_2.j + localb_1.j);
              if (bool) {
                break label242;
              }
              if (k == 0) {
                break label254;
              }
            }
          }
        }
        double d4 = paramb_.h - localb_1.h;
        double d5 = paramb_.i - localb_1.i;
        double d6 = paramb_.j - localb_1.j;
        double d7 = d4 * d4 + d5 * d5 + d6 * d6;
        if ((bool) || (d7 != 0.0D))
        {
          double d8 = 1.0D;
          if (!bool) {
            if (this.X)
            {
              double d9 = Math.sqrt(d7);
              double d10 = d9 - (paramb_.k + localb_1.k);
              if (!bool) {
                if (d10 <= 0.0D)
                {
                  d8 = this.kb / (1.0E-008D * d9);
                  if (bool) {
                    break label634;
                  }
                  if (k == 0) {
                    break label614;
                  }
                }
              }
              if (!bool) {
                switch (paramInt)
                {
                case 0: 
                  d8 = this.kb / (d10 * d9);
                  if (bool) {
                    break label634;
                  }
                  if (k == 0) {
                    break;
                  }
                case 1: 
                  d8 = this.kb / (d10 * d10 * d9);
                  if (bool) {
                    break label634;
                  }
                  if (k == 0) {
                    break;
                  }
                case 2: 
                  d8 = this.kb / (d10 * d10 * d10 * d9);
                  if (bool) {
                    break label634;
                  }
                  if (k == 0) {
                    break;
                  }
                default: 
                  d8 = this.kb / (Math.pow(d10, paramInt + 1) * d9);
                  if (bool) {
                    break label634;
                  }
                }
              }
              if (k == 0) {
                break label614;
              }
            }
          }
          if (!bool) {}
          switch (paramInt)
          {
          case 0: 
            d8 = this.kb / d7;
            if (bool) {
              break label634;
            }
            if (k == 0) {
              break;
            }
          case 1: 
            d8 = this.kb / (d7 * Math.sqrt(d7));
            if (bool) {
              break label634;
            }
            if (k == 0) {
              break;
            }
          case 2: 
            d8 = this.kb / (d7 * d7);
            if (bool) {
              break label634;
            }
            if (k == 0) {
              break;
            }
          default: 
            d8 = this.kb / Math.pow(d7, (paramInt + 2) * 0.5D);
          }
          d1 += d4 * d8;
          d2 += d5 * d8;
          d3 += d6 * d8;
        }
      }
      j--;
    } while (k == 0);
    label614:
    label634:
    paramc_.a += d1;
    label644:
    paramc_.b += d2;
    if (!bool) {
      paramc_.d += d3;
    }
  }
  
  private void d(b_ paramb_, c_ paramc_)
  {
    double d = this.U.d / this.cb.length - paramb_.j;
    paramc_.d += d * this.cb.length / this.T;
  }
  
  private void e(b_ paramb_, c_ paramc_)
  {
    if ((j.c) || (this.hb != 0.0D))
    {
      double d1 = this.U.a / this.cb.length - paramb_.h;
      double d2 = this.U.b / this.cb.length - paramb_.i;
      double d3 = this.U.d / this.cb.length - paramb_.j;
      paramc_.a += d1 * this.hb;
      paramc_.b += d2 * this.hb;
      paramc_.d += d3 * this.hb;
    }
  }
  
  private void f(b_ paramb_, c_ paramc_)
  {
    double d = 0.0001D * (paramb_.g + 2.0D);
    if (!j.c)
    {
      if (d > 0.0D)
      {
        paramc_.a = this.db.a(-d, d);
        paramc_.b = this.db.a(-d, d);
      }
    }
    else {
      paramc_.d = this.db.a(-d, d);
    }
  }
  
  private void a(b_ paramb_)
  {
    boolean bool = j.c;
    if (!bool) {
      if (paramb_.r == 0.0D) {
        return;
      }
    }
    double d = Math.min(paramb_.q, paramb_.r);
    if ((bool) || (d > 0.0D))
    {
      if (!bool) {
        if (paramb_.k < d - 10.0D) {
          paramb_.k = ((9.0D * paramb_.k + d) / 10.0D);
        }
      }
      if ((bool) || ((j.b != 0) && ((bool) || (paramb_.k > d + 10.0D)))) {
        paramb_.k = ((3.0D * paramb_.k + d) / 4.0D);
      }
    }
  }
  
  private void b(b_ paramb_)
  {
    boolean bool = j.c;
    int i = j.b;
    b_ localb_1 = paramb_.p;
    if (((bool) || (localb_1 != null)) && ((bool) || (localb_1.o == 1)))
    {
      z localz = localb_1.s;
      double d1 = this.R + 1.0D;
      v localv = localz.f();
      if (localv != null) {}
      while (bool)
      {
        b_ localb_2 = this.ab[((a.c.e)localv.c()).f()];
        double d2 = localb_1.h - localb_2.h;
        double d3 = localb_1.i - localb_2.i;
        double d4 = localb_1.j - localb_2.j;
        double d5 = Math.sqrt(d2 * d2 + d3 * d3 + d4 * d4) + localb_2.k;
        if ((!bool) && (i != 0)) {
          return;
        }
        if (!bool)
        {
          if (d5 > d1) {
            d1 = d5;
          }
          localv = localv.a();
        }
        if (i == 0) {
          break;
        }
      }
      localb_1.q = d1;
    }
  }
  
  void a(b_ paramb_, c_ paramc_, double paramDouble)
  {
    boolean bool = j.c;
    int i = j.b;
    if ((bool) || ((paramDouble != 0.0D) && ((bool) || (paramb_.e != 0.0D))))
    {
      double d = (paramc_.a * paramb_.b + paramc_.b * paramb_.c + paramc_.d * paramb_.d) / (paramDouble * paramb_.e);
      this.T -= paramb_.g * paramb_.g;
      this.S -= paramb_.g;
      if (!bool) {
        if (paramb_.l * d > 0.0D)
        {
          paramb_.g += d * 0.45D;
          if (bool) {
            break label170;
          }
          if (i == 0) {
            break label161;
          }
        }
      }
      paramb_.g += d * 0.15D;
      label161:
      label170:
      if (!bool) {
        if (paramb_.g > this.V)
        {
          paramb_.g = this.V;
          if (bool) {
            break label228;
          }
          if (i == 0) {
            break label219;
          }
        }
      }
      if (!bool)
      {
        if (paramb_.g < 0.1D) {
          paramb_.g = 0.1D;
        }
        label219:
        if (bool) {}
      }
      else
      {
        label228:
        if (this.J == 1)
        {
          if (bool) {
            break label298;
          }
          if (!paramb_.m) {
            paramb_.g *= (1.0D - 0.066D * (paramb_.n + 1));
          }
        }
        this.S += paramb_.g;
      }
      this.T += paramb_.g * paramb_.g;
      label298:
      paramb_.l = d;
    }
  }
  
  void b(b_ paramb_, c_ paramc_, double paramDouble)
  {
    if ((j.c) || (paramDouble > 0.0D))
    {
      double d1 = paramb_.g / paramDouble;
      double d2 = paramc_.a * d1;
      paramb_.h += d2;
      this.U.a += d2;
      double d3 = paramc_.b * d1;
      paramb_.i += d3;
      this.U.b += d3;
      double d4 = paramc_.d * d1;
      paramb_.j += d4;
      this.U.d += d4;
      paramb_.e = paramDouble;
      paramb_.b = paramc_.a;
      paramb_.c = paramc_.b;
      paramb_.d = paramc_.d;
    }
  }
  
  public void K()
  {
    this.Z = null;
    this.ab = null;
    this.cb = null;
    this.mb = null;
    this.lb = null;
  }
  
  private void L()
  {
    boolean bool = j.c;
    int j = j.b;
    b_ localb_1;
    if (!bool) {
      if (this.sb != null)
      {
        v localv = this.sb.d(this.sb.d()).f();
        do
        {
          if (localv == null) {
            break;
          }
          if ((!bool) && (j != 0)) {
            break label150;
          }
          localb_1 = this.ab[((a.c.e)localv.c()).f()];
          b_ localb_2 = localb_1.p;
          if (!bool)
          {
            if (localb_2 != null)
            {
              if (bool) {
                continue;
              }
              if (localb_2.o == 3)
              {
                localb_1.h += localb_2.h;
                localb_1.i += localb_2.i;
                localb_1.j += localb_2.j;
              }
            }
            localv = localv.a();
          }
        } while (j == 0);
      }
    }
    label150:
    int i = this.ab.length - 1;
    do
    {
      if (i < 0) {
        break;
      }
      localb_1 = this.ab[i];
      this.Z.a(localb_1.a, localb_1.h, localb_1.i);
      i--;
    } while (j == 0);
  }
  
  private static int e(int paramInt)
  {
    return paramInt * paramInt;
  }
  
  private static double f(double paramDouble)
  {
    return paramDouble * paramDouble;
  }
  
  private double a(d paramd)
  {
    boolean bool = j.c;
    double d1 = this.R;
    a.c.k localk1 = this.Z.c(I);
    if ((bool) || (localk1 != null))
    {
      if (bool) {
        break label67;
      }
      if (localk1.getInt(paramd) > 0) {
        d1 = localk1.getInt(paramd);
      }
    }
    if (!bool)
    {
      label67:
      if (this.J != 1) {}
    }
    else
    {
      a.c.k localk2 = this.Z.c(w);
      if ((bool) || ((!localk2.getBool(paramd.e())) && (!localk2.getBool(paramd.f()))))
      {
        double d2 = this.Z.m(paramd.e()) - this.Z.m(paramd.f());
        double d3 = this.Z.n(paramd.e()) - this.Z.n(paramd.f());
        if (bool) {
          break label240;
        }
        d1 = Math.sqrt(d2 * d2 + d3 * d3) * 0.95D + 1.0D;
        if (this.X)
        {
          d1 -= this.ab[paramd.e().f()].k + this.ab[paramd.f().f()].k;
          d1 = Math.max(1.0D, d1);
        }
      }
    }
    label240:
    return d1;
  }
  
  static class b_
  {
    public final a.c.e a;
    public double b;
    public double c;
    public double d;
    public double e;
    public int f;
    public double g;
    public double h;
    public double i;
    public double j;
    public double k;
    public double l;
    public final boolean m;
    public int n;
    public byte o;
    public b_ p;
    public double q;
    public double r;
    public z s;
    
    b_(a.c.e parame, double paramDouble1, boolean paramBoolean, double paramDouble2, int paramInt, wb paramwb, o paramo, byte paramByte)
    {
      this.a = parame;
      this.e = 0.0001D;
      this.m = paramBoolean;
      this.g = paramDouble1;
      this.l = 1.0D;
      this.k = ((paramo.s(parame) + paramo.t(parame)) / 4.0D);
      this.q = paramDouble2;
      if (!bool)
      {
        switch (paramByte)
        {
        case 0: 
          double d1 = 0.45D * paramDouble2 * Math.sqrt(paramInt);
          this.h = paramwb.a(-d1, d1);
          this.i = paramwb.a(-d1, d1);
          this.j = paramwb.a(-d1, d1);
          if (!bool) {
            if (i1 == 0) {
              return;
            }
          }
        case 1: 
          this.h = (this.i = this.j = 0.0D);
          if (bool) {
            break label231;
          }
          if (i1 == 0) {
            return;
          }
          break;
        }
        this.h = paramo.o(parame).a();
        this.i = paramo.o(parame).b();
        if (bool) {}
      }
      else if (this.m)
      {
        label231:
        if (bool) {
          break label268;
        }
        this.j = paramwb.a(-paramDouble2 * 0.3D, paramDouble2 * 0.3D);
        if (i1 == 0) {
          return;
        }
      }
      label268:
      this.j = 0.0D;
    }
  }
  
  private final class d_
    extends r
  {
    private d_() {}
    
    public boolean canLayout(o paramo)
    {
      boolean bool = j.c;
      if ((paramo != null) && ((bool) || (a() != null))) {
        if (bool) {
          break label37;
        }
      }
      label37:
      return a().canLayout(paramo);
    }
    
    public void doLayout(o paramo)
    {
      boolean bool = j.c;
      int i = j.b;
      if (a() != null) {
        if (a.f.c.h.b(paramo))
        {
          Object localObject1 = null;
          if (!bool) {}
          Object localObject2;
          switch (e.this.v())
          {
          case 0: 
          default: 
            a().doLayout(paramo);
            if (i == 0) {
              break;
            }
          case 1: 
            x localx = null;
            if ((bool) || (paramo.c(e.x) == null))
            {
              localx = paramo.B();
              paramo.a(e.x, localx);
              localObject2 = new a.f.c.h(paramo);
              v localv = ((a.f.c.h)localObject2).c(((a.f.c.h)localObject2).d()).f();
              if (localv != null) {}
              while (bool)
              {
                a.c.e locale = (a.c.e)localv.c();
                if (bool) {
                  break label207;
                }
                localx.a(locale, ((a.f.c.h)localObject2).e(locale));
                localv = localv.a();
                if (i != 0) {
                  break label206;
                }
                if (i == 0) {
                  break;
                }
              }
              ((a.f.c.h)localObject2).e();
            }
            a().doLayout(paramo);
            if (localx == null) {
              break;
            }
            paramo.j(e.x);
            paramo.a(localx);
            localx = null;
            if (i == 0) {
              break;
            }
          case 2: 
            label206:
            label207:
            localObject2 = new c(a());
            ((c)localObject2).a(new f.e_(e.this.t()));
            if (!bool)
            {
              ((c)localObject2).doLayout(paramo);
              if (i == 0) {
                break;
              }
            }
            break;
          }
        }
        else
        {
          a().doLayout(paramo);
        }
      }
    }
    
    d_(e.0 param0)
    {
      this();
    }
  }
  
  static final class c_
  {
    public double a;
    public double b;
    public double d;
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.g.e

 * JD-Core Version:    0.7.0.1

 */